package com.lovo.dimao.config;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.OutputFile;
import com.baomidou.mybatisplus.generator.config.rules.DateType;

import java.util.Collections;


/**
 * @Author MaoYue
 * @Date 2022-04-13 18:36
 * @Description
 */
public class CodeGenrator {
    public static void main(String[] args) {

        String []x={"ssc_order_detail","ssc_product","ssc_product_bulk","ssc_product_input_records","ssc_product_promotion",
                "ssc_product_stock","ssc_purchase" ,"ssc_purchase_detail"  ,"ssc_refund" };


        for (int i = 0; i < x.length; i++) {
            test(x[i]);

        }
    }



    public static  void test(String path){

        // 1：  此处需修改
        FastAutoGenerator.create("jdbc:mysql://81.68.252.127:3306/backend?characterEncoding=utf-8&serverTimezone=Asia/Shanghai", "root", "lovo101")
                .globalConfig(builder -> {
                    // 设置作者
                    builder.author("MaoYue")
                            // 开启 swagger 模式
                            .enableSwagger()
                            // 覆盖已生成文件
                            .fileOverride()
                            .dateType(DateType.ONLY_DATE)
                            //格式化注释日期格式
                            .commentDate("yyyy年MM月dd日")
                            // 指定输出目录 2：此处需修改
                            .outputDir("D:\\demo\\dimall\\backend\\src\\main\\java");
                })
                .packageConfig(builder -> {
                    // 设置父包名
                    builder.parent("com.lovo.dimao")
//                            // 3:此处需修改
                            .pathInfo(Collections.singletonMap(OutputFile.mapperXml, "D:\\demo\\dimall\\backend\\src\\main\\resources\\mapper")); // 设置mapperXml生成路径
                })
                .strategyConfig(builder -> {
                    //需要注意的是，在builder后面乱点是点不出来有些方法的，必须先开启相应配置再点，如先.controllerBuilder()，才能继续点属于controllerBuilder的方法
                    //官方api文档地址：https://baomidou.com/pages/981406/#%E6%95%B0%E6%8D%AE%E5%BA%93%E9%85%8D%E7%BD%AE-datasourceconfig
                    // 设置需要生成的表名(,user_industry,industry_specific,industry_info,family_member)
                    builder.addInclude(path) // 4：对应表明
                            //开启lombok注解（需要引入lombok依赖）
                            .entityBuilder().enableLombok()
                            //设置id类型
                            .idType(IdType.ASSIGN_ID)
//                            //设置逻辑删除字段
//                            .logicDeleteColumnName("zxbz")
                            //开启字段映射表字段名注解
                            .enableTableFieldAnnotation()
                            //定义service命名规范
                            .serviceBuilder().formatServiceFileName("%sService")
                            //开启controller配置
                            .controllerBuilder()
                            //使用rest风格
                            .enableRestStyle();
                    // 设置过滤表前缀
//                            .addTablePrefix("t_", "c_");
                })
                // 使用Freemarker引擎模板，默认的是Velocity引擎模板
//                .templateEngine(new FreemarkerTemplateEngine())
                .execute();


    }
}

